Repository navigation
Use the stdlib Hashtbl for the compiler's hash sets - #8787
Conversation
Hash sets are unit Hashtbl.Make tables; adds keep the first key. Sort hard dependencies by a total order so ties no longer depend on hash order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Christoph Knittel <ck@cca.io>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Christoph Knittel <ck@cca.io>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Christoph Knittel <ck@cca.io>
rescript
@rescript/belt
@rescript/darwin-arm64
@rescript/darwin-x64
@rescript/linux-arm64
@rescript/linux-x64
@rescript/runtime
@rescript/win32-x64
commit: |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## stdlib-hashtbl #8787 +/- ##
==================================================
- Coverage 80.66% 80.64% -0.03%
==================================================
Files 461 458 -3
Lines 62630 62523 -107
==================================================
- Hits 50520 50420 -100
+ Misses 12110 12103 -7
🚀 New features to boost your workflow:
|
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Second of four PRs moving the compiler's own collections onto the OCaml standard library, stacked on #8786. This one covers hash sets.
Hash_set_ident,Hash_set_stringandUsed_attributes.Attribute_name_setare nowunittables fromHashtbl.Make, using the same equality and hash functions as before.Lam_module_ident.Hash_setis an alias ofLam_module_ident.Hash.Hash_setandHash_set_genare removed, together with their ounit tests.mem, so the first key added is kept. This matters forLam_module_ident: two module ids can be equal while carrying differentids, and the first one decides the name the import is bound to.Lam_module_ident.set_adddoes this for the module sets.default. They are now broken by kind and thendefault. The one change in the generated output iskey_word_property.mjs. There the old order putdefaultfirst for one module and last for another; now the plain import always comes first.Output: byte-identical to #8786 on 627 of 628 files; the exception is
key_word_property.res, described above.Performance: neutral (CPU +0.2%, allocation −0.1% vs master). Earlier figures that suggested a speedup didn't reproduce.
🤖 Generated with Claude Code